// ==========================================================================
//										
//	- Expression (Header)	
// ==========================================================================

/**	
*	\file expression.h
*	\brief Ce fichier contiendra la classe expression
*
* 		==========================================================================\n	
*			Une Expression est un objet qui est soit un <Terme>\n
*			Soit <Terme> <Operateur-additon> <Terme>\n
* 		==========================================================================\n 
*	\autor M.BOAZIZ R.BOUAYADI C.DRAMSY A.OCCELLO D.SENG
*	\version 0.1
*	\date 11 mai 2010 
*/


#ifndef __EXPRESSION_H__
#define __EXPRESSION_H__

#include<vector>
#include "netg.h"
#include "terme.h"
#include "opeadd.h"
#include "element.h"


class Terme;
class OpeAdd;

/*!
*	
*
*
*/
class Expression : public Element
{
	private:
		std::vector<Terme>* Termes;
		std::vector<OpeAdd>* OpeAdds;
	public:
		
		//constructeur(s)
		Expression();
		
		//Destructeur
		virtual ~Expression ();
		
		//mutateurs

		//Accesseur(s)

		std::vector<OpeAdd>* getOpeAdds();
		std::vector<Terme>* getTermes();
		
		//Autres methodes
		void addTerme(Terme T);
		void addOpeAdd(OpeAdd O);
		
		void clearTermes();
		void clearOpeAdds();
		
		Netg Calcul();
	
};


#endif /* __EXPRESSION */
